package cn.cvs.dao;

import cn.cvs.entity.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysUserMapper {

    /**
     * @description:根据角色ID集合查询用户信息
     * @author: liu xi
     * @param: * @param roleIdList  角色ID集合
     * @date: 2025/4/22 9:17
     * @return: java.util.List<cn.cvs.entity.SysUser>
     */
    List<SysUser> seltByIdList(@Param("roleIdList") List<Integer> roleIdList);
    /**用户的详情功能
     * create time:2025/5/22 13:11
     * @param id
     * @return cn.cvs.entity.SysUser
     */
    /**
     * 用户查询
     * cailing
     * @param name
     * @param roleId
     * @param pageBegin
     * @param pageSize
     * @return
     */
    List<SysUser> selectList(@Param("realname") String name,
                             @Param("roleId") Integer roleId,
                             @Param("pageBegin") Integer pageBegin,
                             @Param("pageSize") Integer pageSize);
    SysUser selectById(@Param("id") Integer id);
    /**通过账号和密码进行登录验证
    * create time:2025/5/22 13:13
    * @param account
    * @return cn.cvs.entity.SysUser
    */
    SysUser selectByAccount(@Param("account") String account);
    /**
     * 新增
     */
    int add(SysUser sysUser);

    /**
     * 删除
     */
    int deleteById(@Param("id") Integer delId);


    /**修改用户密码
    * create time:2025/5/22 13:13
    * @param id
     * @param password
    * @return int
    */
    int updatePwd(@Param("id") Integer id,
                  @Param("password") String password);
    /**
     * @description:根据ID修改用户信息
     * @author: liu xi
     * @param: * @param user
     * @date: 2025/4/18 9:06
     * @return: int
     */
    int updById(SysUser user);
    /**
     * @description:用户的详情功能
     * @author: liu xi
     * @param: * @param id 用户ID
     * @date: 2025/4/18 11:25
     * @return: cn.cvs.entity.SysUser
     */
//    SysUser selById(Integer id);
    /**
     * @description:根据ID批量删除
     * @author: liu xi
     * @param: * @param idList ID的集合
     * @date: 2025/4/18 11:26
     * @return: int 受影响的行数
     */
    int delByIds(@Param("idList") List<Integer> idList);
    /**
     * @description:根据角色ID集合查询用户信息
     * @author: liu xi
     * @param: * @param roleIdList  角色ID集合
     * @date: 2025/4/22 9:17
     * @return: java.util.List<cn.cvs.entity.SysUser>
     */

    /**
     *
     * @param realName
     * @param roleId
     * @author:cailing
     * @return
     */
//    int selectCount(@Param("realName") String realName,@Param("roleId") Integer roleId);
//    SysUser selectById(@Param("id") Integer id);

    // 添加selectList方法定义，这里假设参数含义为：条件参数1、条件参数2、起始页码、每页数量
    List<SysUser> selectList(Object param1, Object param2, int pageBegin, int pageSize);



    int update(SysUser sysUser);

    int selectCount(Object o, Object o1);

    default SysUser selById(int i) {
        return null;
    }

    List<SysUser> selectList(String 张, int i, String 男);
}

